Apex ডেটা টাইপস এবং ভেরিয়েবল সম্পর্কে জানলে Salesforce-এ ডেটা ম্যানিপুলেশন এবং লজিক্যাল অপারেশন করা সহজ হয়। Apex বিভিন্ন ধরনের ডেটা টাইপ সমর্থন করে, যা প্রতিটি ভেরিয়েবলের জন্য ডেটার ধরন নির্ধারণ করে। নিচে Apex-এ ব্যবহৃত ডেটা টাইপ এবং ভেরিয়েবল ডিক্লারেশন নিয়ে বিস্তারিত আলোচনা করা হলো।
Apex ডেটা টাইপস মূলত দুটি প্রধান ভাগে বিভক্ত: Primitive Data Types এবং Complex Data Types। এছাড়াও, Collections এবং sObject টাইপও রয়েছে, যা ডেটা সংরক্ষণ এবং ম্যানেজমেন্টে সহায়ক।
Primitive Data Types Apex-এর সাধারণ ডেটা টাইপ, যা সহজ ডেটা সংরক্ষণ করতে ব্যবহার করা হয়।
public Integer count = 10;
public Double price = 19.99;
public Long bigNumber = 1234567890L;
public String name = 'Apex Language';
public Boolean isActive = true;
public Date today = Date.today();
public Time now = Time.now();
public Datetime current = Datetime.now();
public Id recordId = '0015g00000abc123';
Complex Data Types-এ অন্যান্য অবজেক্টের রেফারেন্স রাখা হয় বা ক্লাসের মাধ্যমে ডেটা মডেল তৈরি করা যায়।
public List<String> names = new List<String>();
public Set<Integer> uniqueNumbers = new Set<Integer>();
public Map<String, Integer> scoreMap = new Map<String, Integer>();
Collections মূলত একাধিক মান সংরক্ষণ করতে ব্যবহৃত হয়। Apex-এ তিন ধরনের Collection রয়েছে:
List: একাধিক ভ্যালু স্টোর করতে ব্যবহার করা হয়, যেকোনো ধরনের ডেটা ধারণ করতে পারে।
List<String> cities = new List<String>{'Dhaka', 'Chittagong', 'Khulna'};
Set: ইউনিক ভ্যালু সংরক্ষণ করে এবং কোনো ডুপ্লিকেট ভ্যালু গ্রহণ করে না।
Set<String> uniqueNames = new Set<String>{'John', 'Doe', 'Smith'};
Map: কী-ভ্যালু পেয়ার ফরম্যাটে ডেটা সংরক্ষণ করতে ব্যবহার করা হয়।
Map<String, Integer> ageMap = new Map<String, Integer>{'John' => 25, 'Doe' => 30};
sObject হল Salesforce ডেটাবেজ অবজেক্টের একটি টাইপ, যা Salesforce রেকর্ডকে নির্দেশ করে। Apex-এ প্রতিটি Salesforce অবজেক্ট sObject
টাইপের মাধ্যমে এক্সেস করা যায়।
Account acc = new Account();
acc.Name = 'Tech Company';
insert acc;
Apex-এ ভেরিয়েবল ডিক্লারেশন করতে প্রথমে ডেটা টাইপ, এরপর ভেরিয়েবল নাম উল্লেখ করতে হয়। ভেরিয়েবল ডিক্লারেশন ইনিশিয়ালাইজেশনসহ বা ইনিশিয়ালাইজেশন ছাড়াও করা যায়।
// Primitive Data Types
Integer count = 10;
String name = 'Apex Tutorial';
Boolean isActive = true;
Double amount = 99.99;
Date today = Date.today();
// Complex Data Types
List<String> colors = new List<String>{'Red', 'Green', 'Blue'};
Set<Integer> uniqueNumbers = new Set<Integer>{1, 2, 3, 4};
Map<String, Integer> ageMap = new Map<String, Integer>{'John' => 25, 'Doe' => 30};
// sObject
Account acc = new Account(Name = 'Example Account');
নামকরণ কনভেনশন: ভেরিয়েবলের নাম অর্থপূর্ণ এবং সাধারণত ক্যামেল কেসে রাখা উচিত (যেমন: myVariable
, totalAmount
)।
Access Modifiers: ভেরিয়েবলে অ্যাক্সেস মডিফায়ার ব্যবহার করা যায়, যেমন public
, private
, global
ইত্যাদি।
Scope (স্কোপ): ভেরিয়েবলের স্কোপ নির্ভর করে এটি কোথায় ডিক্লার করা হয়েছে তার উপর, যেমন মেথডের ভিতরে ডিক্লার করা ভেরিয়েবল সেই মেথডের জন্যই সীমাবদ্ধ থাকে।
Constants: Apex-এ ভেরিয়েবলকে final
করে স্থির মান নির্ধারণ করা যায়, যা পরবর্তীতে পরিবর্তন করা যায় না।
public final Integer MAX_LIMIT = 100;
public class ExampleClass {
public String name = 'Apex Language'; // Class-level variable
private Integer count = 0; // Private variable
public void updateCount(Integer value) {
count = value;
}
public void displayInfo() {
System.debug('Name: ' + name);
System.debug('Count: ' + count);
}
}
Apex-এর ডেটা টাইপ এবং ভেরিয়েবল ব্যবহারের এই কাঠামো Salesforce প্ল্যাটফর্মে ডেটা ম্যানেজমেন্ট এবং লজিক্যাল অপারেশন সহজ করে, যা ডেভেলপারদের কার্যকর কোড লিখতে সহায়ক।
Primitive Data Types Apex-এ সেই মৌলিক ডেটা টাইপগুলি, যা সাধারণত কোনো অবজেক্ট বা ক্লাসের রেফারেন্স ছাড়াই ব্যবহার করা যায়। Apex প্রোগ্রামিং ভাষায় চারটি প্রধান প্রিমিটিভ ডেটা টাইপ রয়েছে: Integer, Double, Boolean, এবং String। প্রতিটি টাইপের ব্যবহার এবং বৈশিষ্ট্য সম্পর্কে নিচে বিস্তারিত আলোচনা করা হলো:
Integer হলো একটি প্রিমিটিভ ডেটা টাইপ যা পূর্ণসংখ্যা (বিন্দু ছাড়াই) স্টোর করার জন্য ব্যবহৃত হয়। এটি -2,147,483,648 থেকে 2,147,483,647 পর্যন্ত মান ধারণ করতে সক্ষম।
উদাহরণ:
Integer count = 100;
Integer negativeValue = -20;
ব্যবহার: Integer সাধারণত কাউন্টার, লুপ ইটারেশন, এবং এমন ডেটা সংরক্ষণে ব্যবহৃত হয় যেখানে শুধুমাত্র পূর্ণসংখ্যা প্রয়োজন।
Double একটি দশমিক সংখ্যা ধারণ করার জন্য ব্যবহৃত হয়। এটি 15 সংখ্যা পর্যন্ত নির্ভুল দশমিক মান ধারণ করতে সক্ষম। Double ডেটা টাইপ সাধারণত মুদ্রা, ওজন, দৈর্ঘ্য ইত্যাদি দশমিক মান যুক্ত ডেটা সংরক্ষণে ব্যবহৃত হয়।
উদাহরণ:
Double price = 99.99;
Double weight = 75.5;
ব্যবহার: Double সাধারণত যখন দশমিক যুক্ত মান দরকার হয়, যেমন মুদ্রার মান, গড় নির্ণয়, বা পরিমাপের জন্য ব্যবহৃত হয়।
Boolean একটি লজিক্যাল ডেটা টাইপ, যা শুধুমাত্র দুটি মান ধারণ করতে পারে: true বা false। Boolean টাইপ সাধারণত লজিক্যাল কন্ডিশন বা স্টেট চেক করতে ব্যবহৃত হয়।
উদাহরণ:
Boolean isActive = true;
Boolean isAvailable = false;
ব্যবহার: Boolean সাধারণত কোনো শর্ত বা স্টেট চেক করার জন্য ব্যবহৃত হয়, যেমন কোনো ইউজার অ্যাক্টিভ আছে কিনা, বা কোনো প্রোডাক্ট স্টকে আছে কিনা।
String হলো টেক্সট ডেটা ধারণ করার জন্য ব্যবহৃত প্রিমিটিভ টাইপ। এটি এক বা একাধিক অক্ষরের সমন্বয়ে গঠিত হয় এবং এর মাধ্যমে সাধারণত টেক্সট ডেটা সংরক্ষণ করা হয়।
উদাহরণ:
String name = 'John Doe';
String message = 'Welcome to Salesforce!';
ব্যবহার: String সাধারণত কোনো টেক্সট ডেটা, যেমন ইউজারের নাম, ঠিকানা, বার্তা ইত্যাদি সংরক্ষণে ব্যবহৃত হয়।
Apex-এর এই প্রিমিটিভ ডেটা টাইপগুলো সাধারণ ডেটা ম্যানেজমেন্ট ও লজিক্যাল কন্ডিশন চেকের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে।
কমপ্লেক্স ডেটা টাইপস Apex-এ ডেটার একটি বড় সংগ্রহ সংরক্ষণ ও ম্যানেজ করার জন্য ব্যবহার করা হয়। কমপ্লেক্স ডেটা টাইপের মধ্যে List, Set, এবং Map উল্লেখযোগ্য, যা বিভিন্ন ধরনের ডেটা স্টোরেজ এবং ম্যানিপুলেশনের জন্য Apex-এ বিশেষভাবে ব্যবহৃত হয়।
List হলো এমন একটি ডেটা স্ট্রাকচার যেখানে একই ধরনের একাধিক ডেটা সিকোয়েন্স বা অর্ডারের ভিত্তিতে সংরক্ষণ করা হয়। List-এ ডুপ্লিকেট মান থাকতে পারে এবং ইনডেক্স ব্যবহার করে আইটেম এক্সেস করা যায়।
new
কিওয়ার্ড এবং List
ক্লাস ব্যবহার করে List তৈরি করা যায়।// String টাইপের একটি List তৈরি
List<String> cities = new List<String>{'Dhaka', 'Chittagong', 'Khulna'};
// List এ নতুন আইটেম যোগ করা
cities.add('Rajshahi');
// List থেকে আইটেম বের করা
String firstCity = cities[0]; // Dhaka
System.debug('First city: ' + firstCity);
// List এর সাইজ পাওয়া
Integer listSize = cities.size();
System.debug('List size: ' + listSize);
Set হলো একটি ডেটা স্ট্রাকচার যা ইউনিক মান সংরক্ষণ করতে ব্যবহার করা হয়। Set-এ কোনো ডুপ্লিকেট মান থাকতে পারে না এবং এতে কোনো অর্ডার থাকে না, তাই ইনডেক্স ব্যবহার করা যায় না।
new
কিওয়ার্ড এবং Set
ক্লাস ব্যবহার করে Set তৈরি করা যায়।// Integer টাইপের একটি Set তৈরি
Set<Integer> uniqueNumbers = new Set<Integer>{1, 2, 3, 4};
// Set এ নতুন আইটেম যোগ করা
uniqueNumbers.add(5);
// ডুপ্লিকেট আইটেম যোগ করলে কোনো পরিবর্তন হবে না
uniqueNumbers.add(3);
// Set-এর সাইজ পাওয়া
Integer setSize = uniqueNumbers.size();
System.debug('Set size: ' + setSize); // আউটপুট: 5
Map হলো একটি ডেটা স্ট্রাকচার যা কী-ভ্যালু পেয়ার ফরম্যাটে ডেটা সংরক্ষণ করে। প্রতিটি কী একটি ইউনিক মান ধারণ করে এবং তার সাথে সম্পর্কিত একটি ভ্যালু থাকে।
new
কিওয়ার্ড এবং Map
ক্লাস ব্যবহার করে Map তৈরি করা যায়।// String এবং Integer টাইপের কী-ভ্যালু পেয়ার সহ একটি Map তৈরি
Map<String, Integer> ageMap = new Map<String, Integer>{'John' => 25, 'Doe' => 30};
// Map এ নতুন কী-ভ্যালু পেয়ার যোগ করা
ageMap.put('Smith', 28);
// একটি কী থেকে ভ্যালু বের করা
Integer age = ageMap.get('Doe'); // আউটপুট: 30
System.debug('Age of Doe: ' + age);
// Map এর সাইজ পাওয়া
Integer mapSize = ageMap.size();
System.debug('Map size: ' + mapSize); // আউটপুট: 3
বৈশিষ্ট্য | List | Set | Map |
---|---|---|---|
ইউনিক মান | না | হ্যাঁ | কী ইউনিক, ভ্যালু ডুপ্লিকেট |
ইনডেক্সিং | হ্যাঁ | না | না |
অর্ডার | সিকোয়েন্সে সংরক্ষিত | কোনো নির্দিষ্ট অর্ডার নেই | কোনো নির্দিষ্ট অর্ডার নেই |
উদাহরণ | List<String> | Set<Integer> | Map<String, Integer> |
ব্যবহার | একাধিক মান সংরক্ষণ | ইউনিক মান সংরক্ষণ | কী-ভ্যালু পেয়ার সংরক্ষণ |
List, Set এবং Map Apex-এ ডেটা সংগ্রহ এবং ম্যানিপুলেশনের জন্য বিশেষভাবে ব্যবহৃত হয়। List সিকোয়েন্স হিসেবে এবং ডুপ্লিকেটসহ ডেটা সংরক্ষণ করতে ব্যবহৃত হয়, Set ইউনিক মান সংরক্ষণ করতে উপযোগী, এবং Map কী-ভ্যালু পেয়ার সংরক্ষণ ও পরিচালনার জন্য সহায়ক। এই তিনটি ডেটা টাইপ কমপ্লেক্স ডেটা সংরক্ষণ ও ব্যবহারের ক্ষেত্রে Apex-এ বিভিন্ন ধরনের কার্যক্রম সহজ করে।
Enum এবং Custom Data Types Apex-এ কাস্টম ডেটা গঠন তৈরির জন্য ব্যবহৃত হয়। Enum মূলত একটি নির্দিষ্ট মানের তালিকা তৈরি করে যেখানে প্রতিটি মান আলাদা, এবং Custom Data Types সাধারণত ডেটার কাস্টম কাঠামো তৈরি করতে ক্লাসের মাধ্যমে সংজ্ঞায়িত হয়।
Enum হলো একটি কাস্টম ডেটা টাইপ যা কিছু নির্দিষ্ট মানের তালিকা সংরক্ষণ করে। Enum ডেটা টাইপ ব্যবহার করে একটি ভ্যারিয়েবলের মান সীমিত করা যায় নির্দিষ্ট কিছু মূল্যে, যা মূলত একটি স্থির সেটের মধ্যে থাকে। Apex-এ Enum ব্যবহার করার সুবিধা হলো এটি কোডের রিডেবিলিটি এবং মানের নির্ভুলতা নিশ্চিত করে, কারণ ভ্যারিয়েবলের মান সীমাবদ্ধ করা যায় কিছু নির্দিষ্ট মূল্যে।
উদাহরণ:
public enum Status {
NEW,
IN_PROGRESS,
COMPLETED,
CLOSED
}
এখানে Status
নামে একটি Enum তৈরি করা হয়েছে যা চারটি মান ধারণ করে: NEW
, IN_PROGRESS
, COMPLETED
, এবং CLOSED
। এই Enum ব্যবহার করে কোনো ভ্যারিয়েবলকে এই চারটি মানের একটি সেট করতে বাধ্য করা যায়।
ব্যবহার:
Status currentStatus = Status.NEW;
if (currentStatus == Status.NEW) {
System.debug('The status is new.');
}
এখানে currentStatus
ভ্যারিয়েবল শুধুমাত্র Status
Enum এর একটি মান ধারণ করতে পারে, ফলে অপ্রত্যাশিত মান এড়ানো সম্ভব।
Custom Data Types হল এমন ডেটা টাইপ যা ডেভেলপার নিজের প্রয়োজন অনুযায়ী তৈরি করতে পারেন। এটি সাধারণত একটি ক্লাস ব্যবহার করে তৈরি করা হয়, যাতে বিভিন্ন প্রোপার্টি এবং মেথড যুক্ত করা যায়। Custom Data Types ব্যবহার করে কোনো ডেটার বিশেষ কাঠামো সংজ্ঞায়িত করা সম্ভব, যা প্রয়োজন অনুযায়ী ডেটার বিভিন্ন গঠন এবং কার্যক্ষমতা নির্ধারণ করতে সহায়ক।
উদাহরণ:
ধরুন, আমরা একটি Custom Data Type তৈরি করতে চাই যা Contact
এর বিভিন্ন তথ্য সংরক্ষণ করবে।
public class ContactInfo {
public String name;
public String email;
public String phone;
// কনস্ট্রাক্টর
public ContactInfo(String name, String email, String phone) {
this.name = name;
this.email = email;
this.phone = phone;
}
// একটি মেথড
public void displayInfo() {
System.debug('Name: ' + name + ', Email: ' + email + ', Phone: ' + phone);
}
}
এখানে ContactInfo
নামে একটি Custom Data Type তৈরি করা হয়েছে যেখানে name
, email
, এবং phone
ফিল্ড রয়েছে। এই ক্লাসে একটি কনস্ট্রাক্টর এবং displayInfo
নামে একটি মেথডও রয়েছে, যা এই ক্লাসের ডেটা প্রদর্শন করতে ব্যবহৃত হবে।
ব্যবহার:
ContactInfo contact = new ContactInfo('John Doe', 'john.doe@example.com', '123-456-7890');
contact.displayInfo();
এই উদাহরণে, contact
নামে একটি Custom Data Type তৈরি করা হয়েছে, যা ContactInfo
ক্লাসের ডেটা ধারণ করে এবং displayInfo()
মেথড ব্যবহার করে তথ্য প্রদর্শন করে।
Enum এবং Custom Data Types Apex-এ কাস্টমাইজেশন এবং কোডের পরিষ্কারতা বৃদ্ধি করতে অত্যন্ত কার্যকর।
Variables এবং Constants Apex প্রোগ্রামিং ভাষার অত্যন্ত গুরুত্বপূর্ণ অংশ, যা ডেটা সংরক্ষণ এবং ব্যবহারের জন্য ব্যবহৃত হয়। ভেরিয়েবল পরিবর্তনশীল ডেটা ধারণ করতে সক্ষম, যেখানে কনস্ট্যান্ট একটি স্থির মান ধারণ করে যা পরবর্তীতে পরিবর্তন করা যায় না।
Variable হলো একটি স্টোরেজ যা প্রোগ্রাম চলাকালীন ডেটা সংরক্ষণ এবং পরিবর্তনের জন্য ব্যবহৃত হয়। ভেরিয়েবল একটি নির্দিষ্ট ডেটা টাইপের ডেটা ধারণ করে এবং প্রোগ্রাম বিভিন্ন স্থানে ব্যবহৃত হতে পারে।
Apex-এ ভেরিয়েবল ডিক্লারেশন করতে প্রথমে ডেটা টাইপ, তারপর ভেরিয়েবল নাম উল্লেখ করতে হয়।
// String টাইপের একটি ভেরিয়েবল ডিক্লার এবং ইনিশিয়ালাইজ করা
String message = 'Hello, Apex!';
// Integer টাইপের একটি ভেরিয়েবল ডিক্লার এবং ইনিশিয়ালাইজ করা
Integer count = 10;
// Boolean টাইপের একটি ভেরিয়েবল
Boolean isActive = true;
// Date টাইপের একটি ভেরিয়েবল ইনিশিয়ালাইজ করা
Date today = Date.today();
ভেরিয়েবলের মান পরিবর্তন করা এবং পুনরায় ব্যবহার করা যায়। উদাহরণস্বরূপ, নিচের কোডে count
ভেরিয়েবলের মান পরিবর্তন করা হয়েছে এবং message
ভেরিয়েবলের মান প্রিন্ট করা হয়েছে:
public class VariableExample {
public void variableUsage() {
Integer count = 10;
System.debug('Initial count: ' + count); // Output: 10
// ভেরিয়েবলের মান পরিবর্তন করা
count = 20;
System.debug('Updated count: ' + count); // Output: 20
// String ভেরিয়েবলের ব্যবহার
String message = 'Welcome to Apex Programming!';
System.debug('Message: ' + message);
}
}
Constant একটি স্থির মান যা ডিক্লারেশন করার পরে আর পরিবর্তন করা যায় না। কনস্ট্যান্ট তৈরি করার জন্য final
কিওয়ার্ড ব্যবহার করা হয়, যা ভেরিয়েবলটিকে read-only করে দেয়। Constants সাধারণত এমন মান ধরে যা প্রোগ্রাম চলাকালীন কোনো অবস্থাতেই পরিবর্তন হয় না, যেমনঃ PI এর মান, সার্ভারের URL, বা কোনো নির্দিষ্ট সীমা মান।
Apex-এ Constant ডিক্লার করার জন্য final
কিওয়ার্ড ব্যবহার করা হয় এবং এটি ইনিশিয়ালাইজ করার পরে পরিবর্তন করা সম্ভব নয়।
// Integer টাইপের একটি কনস্ট্যান্ট ডিক্লার এবং ইনিশিয়ালাইজ করা
public final Integer MAX_COUNT = 100;
// String টাইপের একটি কনস্ট্যান্ট
public final String WELCOME_MESSAGE = 'Welcome to Salesforce!';
// Double টাইপের কনস্ট্যান্ট
public final Double PI = 3.14159;
Constant ব্যবহারের মাধ্যমে কোড আরও নিরাপদ এবং সুসংহত হয়, কারণ এটি ডিক্লার করার পরে ভুলবশত পরিবর্তিত হতে পারে না। উদাহরণস্বরূপ, নিচের কোডে MAX_COUNT
এবং PI
কনস্ট্যান্ট ব্যবহার করা হয়েছে:
public class ConstantExample {
public final Integer MAX_COUNT = 100; // Constant
public final Double PI = 3.14159; // Constant
public void calculateCircleArea(Double radius) {
Double area = PI * radius * radius;
System.debug('Circle Area: ' + area);
}
public void checkMaxCount(Integer count) {
if (count > MAX_COUNT) {
System.debug('Count exceeds the maximum limit.');
} else {
System.debug('Count is within the limit.');
}
}
}
উপরের উদাহরণে, PI
কনস্ট্যান্টের মাধ্যমে সার্কেলের ক্ষেত্রফল গণনা করা হয়েছে এবং MAX_COUNT
কনস্ট্যান্ট ব্যবহার করে একটি শর্ত চেক করা হয়েছে।
বৈশিষ্ট্য | Variable | Constant |
---|---|---|
মান পরিবর্তনযোগ্যতা | হ্যাঁ, মান পরিবর্তন করা যায়। | না, মান পরিবর্তন করা যায় না। |
কিওয়ার্ড | কোনো নির্দিষ্ট কিওয়ার্ড নেই | final কিওয়ার্ড ব্যবহার করা হয়। |
ব্যবহার | পরিবর্তনশীল ডেটা সংরক্ষণে | স্থির ডেটা সংরক্ষণে |
উদাহরণ | Integer count = 10; | final Integer MAX_COUNT = 100; |
Variables এবং Constants-এর এই ব্যবহারের মাধ্যমে Apex কোডে ডেটা সংরক্ষণ এবং ম্যানেজমেন্ট আরও কার্যকরভাবে সম্পন্ন করা যায়।
common.read_more